Cold এবং Hot Observables এর পার্থক্য

Java Technologies - আরএক্সজাভা (RxJava) - Observable এবং Observer
180

Cold Observables এবং Hot Observables হল RxJava-এর দুটি গুরুত্বপূর্ণ ধারণা, যা Observable এর আচরণের উপর ভিত্তি করে বিভক্ত। এদের প্রধান পার্থক্য হল ডেটা স্ট্রিম কিভাবে প্রেরিত হয় এবং সাবস্ক্রাইবারদের (Subscribers) সাথে কিভাবে আচরণ করে।


Cold Observable:

  • ডেটা স্ট্রিম শুধুমাত্র সাবস্ক্রাইব করার পর শুরু হয়।
    যখন কেউ Observable-এ সাবস্ক্রাইব করে, তখন Observable ডেটা এমিট করা শুরু করে।
  • প্রতিটি সাবস্ক্রাইবার নতুন ডেটা স্ট্রিম পায়।
  • Cold Observable-এর ডেটা static থাকে, অর্থাৎ প্রত্যেক সাবস্ক্রাইবারের জন্য ডেটা পুনরায় এমিট হয়।
  • উদাহরণ: API কল, ডেটাবেস কোয়েরি, বা ফাইল রিড অপারেশন।

উদাহরণ:

import io.reactivex.Observable;

public class ColdObservableExample {
    public static void main(String[] args) {
        // Create a Cold Observable
        Observable<Integer> observable = Observable.just(1, 2, 3, 4);

        // First Subscriber
        observable.subscribe(item -> System.out.println("Subscriber 1: " + item));

        // Second Subscriber
        observable.subscribe(item -> System.out.println("Subscriber 2: " + item));
    }
}

আউটপুট:

Subscriber 1: 1  
Subscriber 1: 2  
Subscriber 1: 3  
Subscriber 1: 4  
Subscriber 2: 1  
Subscriber 2: 2  
Subscriber 2: 3  
Subscriber 2: 4  

Hot Observable:

  • ডেটা স্ট্রিম সাবস্ক্রাইবারদের জন্য অপেক্ষা না করে চলতে থাকে।
    Observable ডেটা এমিট করতে শুরু করে, এমনকি যদি কোনো সাবস্ক্রাইবার না থাকে।
  • নতুন সাবস্ক্রাইবাররা তখন থেকেই ডেটা পেতে শুরু করে যখন তারা সাবস্ক্রাইব করে। আগে প্রেরিত ডেটা তারা পায় না।
  • Hot Observable সাধারণত লাইভ ডেটা বা event-driven operations-এর জন্য ব্যবহৃত হয়।
  • উদাহরণ: Mouse clicks, Keyboard events, বা WebSocket connections।

উদাহরণ:

import io.reactivex.Observable;
import io.reactivex.subjects.PublishSubject;

public class HotObservableExample {
    public static void main(String[] args) {
        // Create a Hot Observable using PublishSubject
        PublishSubject<Integer> hotObservable = PublishSubject.create();

        // First Subscriber subscribes
        hotObservable.subscribe(item -> System.out.println("Subscriber 1: " + item));

        // Emit some data
        hotObservable.onNext(1);
        hotObservable.onNext(2);

        // Second Subscriber subscribes
        hotObservable.subscribe(item -> System.out.println("Subscriber 2: " + item));

        // Emit more data
        hotObservable.onNext(3);
        hotObservable.onNext(4);
    }
}

আউটপুট:

Subscriber 1: 1  
Subscriber 1: 2  
Subscriber 1: 3  
Subscriber 2: 3  
Subscriber 1: 4  
Subscriber 2: 4  

Cold এবং Hot Observable-এর প্রধান পার্থক্য:

বৈশিষ্ট্যCold ObservableHot Observable
ডেটা স্ট্রিম শুরুসাবস্ক্রিপশন-এর পরে শুরু হয়।সাবস্ক্রিপশন-এর আগে থেকেই চলমান।
প্রত্যেক সাবস্ক্রাইবারের জন্য ডেটানতুন করে ডেটা এমিট হয়।সাবস্ক্রাইব করার সময় থেকে ডেটা পায়।
ব্যবহারক্ষেত্রস্ট্যাটিক বা ফিক্সড ডেটার জন্য।লাইভ ডেটা স্ট্রিমের জন্য।
উদাহরণAPI calls, Database queries।Mouse clicks, WebSocket data।

Hybrid Observables:

কিছু Observable, যেমন ConnectableObservable, Hot এবং Cold এর মিশ্রণ হিসাবে কাজ করতে পারে। এগুলি .publish() এবং .connect() এর মাধ্যমে কনফিগার করা যায়।

উপসংহার:

Cold Observable ডেটা পুনরায় তৈরি করতে পারে এবং নির্ধারিত ডেটা এমিট করার জন্য কার্যকর, যেখানে Hot Observable বাস্তব-সময়ের ডেটা বা ইভেন্ট পরিচালনার জন্য আদর্শ।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...